home *** CD-ROM | disk | FTP | other *** search
/ Aminet 31 / Aminet 31 (1999)(Schatztruhe)[!][Jun 1999].iso / Aminet / util / gnu / xpdf-0.8-src.lha / xpdf-0.8-src / ltk / LTKDblBufCanvas.cc < prev    next >
C/C++ Source or Header  |  1998-11-28  |  1KB  |  59 lines

  1. //========================================================================
  2. //
  3. // LTKDblBufCanvas.cc
  4. //
  5. // Copyright 1996 Derek B. Noonburg
  6. //
  7. //========================================================================
  8.  
  9. #ifdef __GNUC__
  10. #pragma implementation
  11. #endif
  12.  
  13. #include <stdlib.h>
  14. #include <stdarg.h>
  15. #include <stddef.h>
  16. #include <X11/Xlib.h>
  17. #include <X11/Xutil.h>
  18. #include "LTKWindow.h"
  19. #include "LTKDblBufCanvas.h"
  20.  
  21. LTKDblBufCanvas::LTKDblBufCanvas(char *name1, int widgetNum1,
  22.                  int minWidth1, int minHeight1):
  23.     LTKWidget(name1, widgetNum1) {
  24.   minWidth = minWidth1;
  25.   minHeight = minHeight1;
  26.   pixmap = None;
  27. }
  28.  
  29. LTKDblBufCanvas::~LTKDblBufCanvas() {
  30.   if (pixmap != None)
  31.     XFreePixmap(getDisplay(), pixmap);
  32. }
  33.  
  34. void LTKDblBufCanvas::layout1() {
  35.   width = minWidth;
  36.   height = minHeight;
  37. }
  38.  
  39. void LTKDblBufCanvas::layout3() {
  40.   Pixmap oldPixmap;
  41.  
  42.   LTKWidget::layout3();
  43.   oldPixmap = pixmap;
  44.   pixmap = XCreatePixmap(getDisplay(), getXWindow(), width, height,
  45.              DefaultDepth(getDisplay(), getScreenNum()));
  46.   XFillRectangle(getDisplay(), pixmap, getBgGC(),
  47.          0, 0, width, height);
  48.   if (oldPixmap != None) {
  49.     XCopyArea(getDisplay(), oldPixmap, pixmap, getFgGC(),
  50.           0, 0, width, height, 0, 0);
  51.     XFreePixmap(getDisplay(), oldPixmap);
  52.   }
  53. }
  54.  
  55. void LTKDblBufCanvas::redraw() {
  56.   XCopyArea(getDisplay(), pixmap, getXWindow(), getFgGC(),
  57.         0, 0, width, height, 0, 0);
  58. }
  59.